package br.ufrn.cep.eEtica.negocio.rest;

import java.util.List;
import java.util.logging.Logger;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import br.ufrn.cep.eEtica.integracao.model.AreaConhecimento;

@Path("/areaConhecimento/")
public class AreaConhecimentoWS extends GenericRS<AreaConhecimento> {



	
	/**
	 *  /areadeconhecimento/listar
	 *  
	 *  @return List<Instituicao>
	 */
	@Override
	@GET 
	@Path("/listar/")
	@Produces(MediaType.TEXT_XML)
	public List<AreaConhecimento> list() {
		return getDao().find(AreaConhecimento.class);
	}

	/**
	 *  /instituicao
	 * 
	 * @param id
	 * @return <Instituicao>
	 */
	@Override
	@GET
	@Produces(MediaType.TEXT_XML)
	public AreaConhecimento getById(@QueryParam("id")int id) {
		System.out.println("Passou Aqui: " + id);
		return getDao().findById(AreaConhecimento.class, id);
	}

	@Override
	@POST
	@Path("/cadastrar/")
	@Produces(MediaType.TEXT_XML)
	@Consumes(MediaType.TEXT_XML)
	public AreaConhecimento create(AreaConhecimento area) {
		getDao().persist(area);
		return area;
	}

	@Override
	@PUT
	@Path("/atualizar/")
	@Produces(MediaType.TEXT_XML)
	@Consumes(MediaType.TEXT_XML)
	public AreaConhecimento update(AreaConhecimento area) {
		getDao().merge(area);
		return area;
	}

	/**
	 *  /areadeconhecimento/remover
	 * 
	 * @param id
	 */
	@Override
	@DELETE
	@Path("/remover/")
	public void delete(@QueryParam("id")int id) {
		getDao().deleteById(AreaConhecimento.class, id);
	}

}
